(function($) {
	$.fn.area = function(options) {
		var opts = $.extend({}, $.fn.area.defaults, options);
		//读取xml文件
		var xmlDoc = loadxml(opts.xmlPath);
		
		var ddlProvince = $("#" + opts.provinceId);
		var ddlCity = $("#" + opts.cityId);
		var ddlCountry = $("#" + opts.countryId);

		// 省份列表
		setSelectOptions(ddlProvince, $(xmlDoc).find("province"), opts);
		// 市列表
		setSelectOptions(ddlCity, $(xmlDoc).find("province[name='"+ddlProvince.find("option:selected").text()+"']").children(), opts);
		// 县列表
		setSelectOptions(ddlCountry, $(xmlDoc).find("city[name='"+ddlCity.find("option:selected").text()+"']").children(), opts);
		
		// 定义省份列表onchange事件
		ddlProvince.change(function(){
			setSelectOptions(ddlCity, $(xmlDoc).find("province[name='"+ddlProvince.find("option:selected").text()+"']").children(), opts);
			ddlCity.change();
		})
		// 定义市列表onchange事件
		ddlCity.change(function(){
			setSelectOptions(ddlCountry, $(xmlDoc).find("city[name='"+ddlCity.find("option:selected").text()+"']").children(), opts);
		})
	}
	
	/** 加载xml文件，兼容当前主流浏览器 */
	function loadxml(xmlFile) {
		var xmlDoc;
		if (window.ActiveXObject) {
			xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
			xmlDoc.async = false;
			xmlDoc.load(xmlFile);
		} else if (document.implementation && document.implementation.createDocument) { // Firefox, Opera 8.0+, Safari
			var xmlHttp = new XMLHttpRequest();
			xmlHttp.open("GET", xmlFile, false);
			xmlHttp.send(null);
			xmlDoc = xmlHttp.responseXML;
		} else {
			xmlDoc = null;
			alert('您的浏览器不支持xml文件读取,推荐使用IE6.0以上可以解决此问题!');
		}
		return xmlDoc;
	};
	
	/** 设置childNodes到一个select对象中 */
	function setSelectOptions($select, $xmlDoc, opts) {
		
		$select.empty();	// 清空下拉列表
		
		$xmlDoc.each(function(){
			var strOption = '<option value="' + $(this).attr("name") + '"';
			if (($(this).attr("name") == opts.defaultProvince) || ($(this).attr("name") == opts.defaultCity) || ($(this).attr("name") == opts.defaultCountry)) {
				strOption = strOption + ' selected="selected"';
			}
			strOption = strOption + '>' + $(this).attr("name") + '</option>';
			$select.append(strOption);
		});
	};
	
	// 插件的defaults
	$.fn.area.defaults = {
		defaultProvince : '',
		defaultCity : '',
		defaultCountry : '',
		provinceId : 'provinceId',
		cityId : 'cityId',
		countryId : 'countryId'
	};
})($);